// 封装具体的接口请求方法
// 注意：每个方法只负责请求一个url地址
import request from '@/utils/request'
// import store from '@/store'

// 这里是命名导出 因为没有default
export const registerAPI = ({ username, password, repassword }) => {
  // 返回promise对象
  // return这个Promise对象到逻辑页面，去那边对Promise对象提取结果
  return request({
    url: '/api/reg',
    method: 'POST',
    data: {
      username,
      password,
      repassword
    }
  })
}
// JSDoc注释 /**
/**
 *登录接口
 * @param {*} param0 {username：用户名,password:密码}
 * @returns promise对象
 */
export const loginAPI = ({ username, password }) => {
  return request({
    url: '/api/login',
    method: 'POST',
    data: {
      username,
      password
    }
  })
}

export const getUserInfoAPI = () => {
  return request({
    url: '/my/userinfo',
    method: 'GET'
    // 传参给后台： params(查询字符串nquery),data(请求body),headers(请求头)
    // headers: {
    //   Authorization: store.state.token
    // }
  })
}

export const getMenusListAPI = () => {
  return request({
    url: '/my/menus'
    // headers: {
    //   Authorization: store.state.token
    // }
  })
}

export const updateUserInfoAPI = ({ id, username, nickname, email, user_pic }) => {
  return request({
    url: '/my/userinfo',
    method: 'PUT',
    data: {
      id, username, nickname, email, user_pic
    }
  })
}
/**
 * 更新用户头像
 * @param {*} avatar 头像图片base64字符串
 * @returns Promise对象
 */
export const updateUserAvatarAPI = (avatar) => {
  return request({
    url: '/my/update/avatar',
    method: 'PATCH',
    data: {
      avatar
    }
  })
}
/**
 * 更新用户密码
 * @param {*} param0 包含old_pwd, new_pwd, re_pwd
 * @returns Promise对象
 */
export const updatePwdAPI = ({ old_pwd, new_pwd, re_pwd }) => {
  return request({
    url: '/my/updatepwd',
    method: 'PATCH',
    data: {
      old_pwd, new_pwd, re_pwd
    }
  })
}

/**
 * 获取文章分类
 * @returns Promise对象
 */
export const getArtCateListAPI = () => {
  return request({
    url: '/my/cate/list'
  })
}

/**
 * 添加文章分类
 * @param {*} param0 包含cate_name分类名字, cate_alias分类别名
 * @returns Promise对象包含ajax请求,会返回一个结果
 */
export const addArtCateAPI = ({ cate_name, cate_alias }) => {
  return request({
    url: '/my/cate/add',
    method: 'POST',
    data: {
      cate_name,
      cate_alias
    }
  })
}

/**
 * 更新文章
 * @param {*} param0  {id:文章分类id ,cate_name:文章类名,cate_alias:别名}
 * @returns promise对象
 */
export const updateArtCateAPI = ({ id, cate_name, cate_alias }) => {
  return request({
    url: '/my/cate/info',
    method: 'PUT',
    data: {
      id,
      cate_name,
      cate_alias
    }
  })
}

/**
 * 删除文章分类
 * @param {*} id 传入要删除的id
 * @returns Promise对象
 */
export const delArtCateAPI = (id) => {
  return request({
    url: '/my/cate/del',
    method: 'DELETE',
    params: {
      id
    }
  })
}
/**
 * 发布文章
 * @param {*} fd FormData表单数据
 * @returns Promise对象
 */
export const uploadArticleAPI = (fd) => {
  return request({
    url: '/my/article/add',
    method: 'POST',
    data: fd
  })
}

/**
 * 获取文章列表
 * @param {*} param0 {pagenum:当前页码数,pagesize:当前页条数,cate_id:文章分类id,state:文章状态}
 * @returns Promise对象
 */
export const getArticleListAPI = ({ pagenum, pagesize, cate_id, state }) => {
  return request({
    url: '/my/article/list',
    params: {
      pagenum,
      pagesize,
      cate_id,
      state
    }
  })
}

/**
 * 获取文章详细内容
 * @param {*} id 文章的id
 * @returns Promise对象
 */
export const getArtDetailAPI = (id) => {
  return request({
    url: '/my/article/info',
    params: {
      id
    }
  })
}

/**
 * 删除对应文章
 * @param {*} id 文章的id
 * @returns Promise对象
 */
export const delArtileAPI = (id) => {
  return request({
    url: '/my/article/info',
    method: 'DELETE',
    params: {
      id
    }
  })
}
